草庐IT

Java String创建和String常量池

全部标签

java - 为什么 String 列表没有 forEach 方法?

我无法理解为什么String[]args变量没有forEach方法?我找不到任何信息表明此类型不是可序列化的或不是集合的,因为forEach方法实现了可序列化。例如,我有一个简单的Java主类。如果我想使用forEach方法,我必须首先导入Arrays类,然后在stream上使用forEach方法如下所示:importjava.util.Arrays;publicclassMyClass{publicstaticvoidmain(String[]args){Arrays.stream(args).forEach(System.out::println);}}为什么不能像这样简单化呢?a

Java 泛型放在 Map<String, ?扩展列表<String>>

有没有办法以类型安全的方式进行以下实现?publicvoidmyMethod(Map>map){map.put("foo",Collections.singletonList("bar");}上面的实现不起作用。它需要Map>编译方法map.put()正确。但是myMethod不会以这种方式接受List的任何子类型。所以,我必须使用Map>反而。我怎样才能以类型安全的方式解决这个问题? 最佳答案 publicvoidmyMethod(Map>map){map.put("foo",Collections.singletonList("

java - 为什么String是一个类?

如果可以直接启动Strings="Hello";那为什么是类呢?参数在哪里? 最佳答案 鉴于String是一个非常有用且经常使用的类,它有一个特殊的语法(通过字符串文字表示:""中的文本)来创建它的实例,但在语义上这两者是等价的:Strings="Hello";//justsyntacticsugarStrings=newString("Hello");在幕后,这两种形式不是100%等价,因为使用""的语法试图重用Java字符串池中的字符串,而使用的显式实例化>newString("")将始终创建一个新对象。但是请不要误会,这两种语

java - Java 中的 String 对象不是不可变的吗?

这个问题在这里已经有了答案:ImmutabilityofStringsinJava(26个答案)关闭7年前。Strings=...;s=s.substring(1);这可能吗?我认为您不能在Java中更改String对象。

java - 如何在 Java String 中的每个大写字母前添加下划线?

我有一个类似“HelloWorldMyNameIsCarl”的字符串,我希望它变成类似“Hello_World_My_Name_Is_Carl”的字符串。我该怎么做? 最佳答案 是的,正则表达式可以为您做到这一点:"HelloWorldMyNameIsCarl".replaceAll("(.)([A-Z])","$1_$2")表达式[A-Z]将匹配每个大写字母并将其放入第二组。您需要第一组。以避免替换第一个“H”。作为Piligrim指出,此解决方案不适用于任意语言。要捕获Unicode标准定义的任何大写字母,我们需要Unicode

java - 拆分 Java String 返回空数组?

这个问题在这里已经有了答案:Splitstringwithdotasdelimiter(13个答案)关闭9年前。我有一个像这样的字符串"myValue"."Folder"."FolderCentury";我想从点(“.”)中拆分出来。我正在尝试使用以下代码:Stringa=column.replace("\"","");StringcolumnArray[]=a.split(".");但是columnArray变空了。我在这里做错了什么?我想在这里再添加一件事,它可能的String数组对象将包含吐出的值,如下面提到的只有两个对象而不是三个。?columnArray[0]="myValu

java - HashMap(键 : String, 值 : ArrayList) returns an Object instead of ArrayList?

我使用(键:字符串,值:ArrayList)将数据存储在HashMap中。我遇到问题的部分声明了一个新的ArrayList“current”,在HashMap中搜索字符串“dictCode”,如果找到则将current设置为返回值ArrayList。ArrayListcurrent=newArrayList();if(dictMap.containsKey(dictCode)){current=dictMap.get(dictCode);}“current=...”行返回编译器错误:Error:incompatibletypesfound:java.lang.Objectrequire

java - 如何通过 Google 文档列表 API 以编程方式创建和管理 Google 表单

我们有一个非常具体的需求。我们想为Activity组织者创建一个通用的(基于Java的)注册系统。因此,每个Activity组织者都可以在我们的应用程序上定义自定义表单,然后我们从用户那里收集该特定Activity的数据。现在输入字段可以从一个事件变为另一个事件,所以我想使用一些开箱即用的云解决方案。我想到的一件显而易见的事情是使用Google表单。因此,对于每个事件,如果我们能够以编程方式创建一个Google表单并获得以下两件事:1)该表格的嵌入链接2)获取相应数据保存GoogleSpreadsheet我们可以使用嵌入链接在Activity页面上向用户显示注册表。我们可以访问Goog

java - Java String 中的 hashCode 实现

这个问题在这里已经有了答案:Avoidinggetfieldopcode(2个答案)关闭7年前。只是好奇,在String的hashCode实现中,在hashCode实现(v1.8.0_65)中创建额外引用背后的原因是什么:publicinthashCode(){inth=hash;if(h==0&&value.length>0){charval[]=value;for(inti=0;i考虑到value是最终的并且仅在构造函数中创建(即线程安全),为什么我们在这里需要变量val[]引用?即这行得通吗:publicinthashCode(){if(hash==0&&value.length

java - 将常量类作为参数传递并存储它

伪代码所提供的片段将被视为伪代码。如果有不同的解决方案是解决此问题的标准方法,我持开放态度。这是关于预期的用法:一些说明:一个,每个应用程序将只使用一个配置。它不会在运行时更改。Main.java不允许@Override。Configuration.java不能是Interface,因为应为未覆盖的字段提供默认值。Configuration.java将从当前的两个字段中大幅增长。使构建器模式变得非常困惑。配置.javapublicclassConfiguration{publicstaticintgetFoo(){return1;}publicstaticintgetBar(){ret